A great number of computer devices (e.g., personal computer, personal digital assistants (“PDAs”), cellular telephones, etc.) employ a graphical user interface (hereinafter “GUI”) to interact with users. A GUI is an input/output (I/O) system characterized by the use of graphics on a computer display to communicate with a computer user. Frequently, the user employs an input device, such as a mouse or trackball, to manipulate and relocate a pointer on the computer display. When a user activates or “clicks” the input device while the pointer is at a designated position on the display, information is input into a computer device. Accordingly, a user does not need to memorize commands or have a knowledge of keyboard typing to provide input to the computer device.
A GUI generally presents graphical display elements (hereinafter “GUI objects”) as two-dimensional images of pixels on a computer display. Often, users want to align GUI objects in order to perform a desired function or create documents with specific characteristics. For example, to create a document with a professional appearance, users may want to align GUI objects at the same vertical or horizontal position. One alignment task that is particularly common is “stacking” GUI objects so they are aligned in succession on a computer display.
Frequently, users align GUI objects using a “click and drag” technique where a single pointer event such as a button click selects the GUI object. Once the GUI object is selected, the pointer moves the GUI object to a new location where a second pointer event places the GUI object. Using dragging, aligning two or more GUI objects is often difficult to accomplish, leading to frustration and lowered productivity. In some instances, users with diminished visual or physical abilities, or lack of training have difficulty correctly positioning the dragged object. In other instances, pointer positioning difficulty may be attributable to the computer device.
An inability to place an object at a specific location on a computer display creates problems because the desired function may not easily be performed. Instead, the user may need to repetitively re-adjust the pointer to perform the desired function. Systems have been developed that improve on the “click and drag” technique used to align GUI objects. For example, some systems support a “snapping” option where a GUI object is automatically moved (i.e., snapped) when positioned within a predetermined distance relative to an aligned coordinate position. A drawback to this approach is that GUI objects may not be positioned less than the predetermined distance from the aligned coordinate position. Stated differently, a user may not place a GUI object close to, but not at, the aligned coordinate position without the object “snapping” to the aligned coordinate position. Another drawback to this approach is that a user must activate the snapping option by, for example, selecting a menu item from a pull-down menu. Some users may not know that options such as “snapping” are available, and may continue to use the “click and drag” technique. As described above, this approach leads to frustration because users are often required to repetitively re-adjust the position of the pointer in order to accurately place the object being dragged.
What is needed is a system and method for aligning GUI objects that allows placement of GUI objects at any location on a computer display. Desirably, the system and method should be easy to use and not require knowledge or training on the part of the user. The present invention addresses these needs and other shortcomings that currently exist.